<!DOCTYPE html><html><head>
      <title>README</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      
      <link rel="stylesheet" href="file:///d:\VSCode\data\extensions\shd101wyy.markdown-preview-enhanced-0.8.18\crossnote\dependencies\katex\katex.min.css">
      
      
      
      
      
      <style>
      code[class*=language-],pre[class*=language-]{color:#333;background:0 0;font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.4;-moz-tab-size:8;-o-tab-size:8;tab-size:8;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:.8em;overflow:auto;border-radius:3px;background:#f5f5f5}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal;background:#f5f5f5}.token.blockquote,.token.comment{color:#969896}.token.cdata{color:#183691}.token.doctype,.token.macro.property,.token.punctuation,.token.variable{color:#333}.token.builtin,.token.important,.token.keyword,.token.operator,.token.rule{color:#a71d5d}.token.attr-value,.token.regex,.token.string,.token.url{color:#183691}.token.atrule,.token.boolean,.token.code,.token.command,.token.constant,.token.entity,.token.number,.token.property,.token.symbol{color:#0086b3}.token.prolog,.token.selector,.token.tag{color:#63a35c}.token.attr-name,.token.class,.token.class-name,.token.function,.token.id,.token.namespace,.token.pseudo-class,.token.pseudo-element,.token.url-reference .token.variable{color:#795da3}.token.entity{cursor:help}.token.title,.token.title .token.punctuation{font-weight:700;color:#1d3e81}.token.list{color:#ed6a43}.token.inserted{background-color:#eaffea;color:#55a532}.token.deleted{background-color:#ffecec;color:#bd2c00}.token.bold{font-weight:700}.token.italic{font-style:italic}.language-json .token.property{color:#183691}.language-markup .token.tag .token.punctuation{color:#333}.language-css .token.function,code.language-css{color:#0086b3}.language-yaml .token.atrule{color:#63a35c}code.language-yaml{color:#183691}.language-ruby .token.function{color:#333}.language-markdown .token.url{color:#795da3}.language-makefile .token.symbol{color:#795da3}.language-makefile .token.variable{color:#183691}.language-makefile .token.builtin{color:#0086b3}.language-bash .token.keyword{color:#0086b3}pre[data-line]{position:relative;padding:1em 0 1em 3em}pre[data-line] .line-highlight-wrapper{position:absolute;top:0;left:0;background-color:transparent;display:block;width:100%}pre[data-line] .line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:linear-gradient(to right,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}pre[data-line] .line-highlight:before,pre[data-line] .line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}pre[data-line] .line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}html body{font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif;font-size:16px;line-height:1.6;color:#333;background-color:#fff;overflow:initial;box-sizing:border-box;word-wrap:break-word}html body>:first-child{margin-top:0}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{line-height:1.2;margin-top:1em;margin-bottom:16px;color:#000}html body h1{font-size:2.25em;font-weight:300;padding-bottom:.3em}html body h2{font-size:1.75em;font-weight:400;padding-bottom:.3em}html body h3{font-size:1.5em;font-weight:500}html body h4{font-size:1.25em;font-weight:600}html body h5{font-size:1.1em;font-weight:600}html body h6{font-size:1em;font-weight:600}html body h1,html body h2,html body h3,html body h4,html body h5{font-weight:600}html body h5{font-size:1em}html body h6{color:#5c5c5c}html body strong{color:#000}html body del{color:#5c5c5c}html body a:not([href]){color:inherit;text-decoration:none}html body a{color:#08c;text-decoration:none}html body a:hover{color:#00a3f5;text-decoration:none}html body img{max-width:100%}html body>p{margin-top:0;margin-bottom:16px;word-wrap:break-word}html body>ol,html body>ul{margin-bottom:16px}html body ol,html body ul{padding-left:2em}html body ol.no-list,html body ul.no-list{padding:0;list-style-type:none}html body ol ol,html body ol ul,html body ul ol,html body ul ul{margin-top:0;margin-bottom:0}html body li{margin-bottom:0}html body li.task-list-item{list-style:none}html body li>p{margin-top:0;margin-bottom:0}html body .task-list-item-checkbox{margin:0 .2em .25em -1.8em;vertical-align:middle}html body .task-list-item-checkbox:hover{cursor:pointer}html body blockquote{margin:16px 0;font-size:inherit;padding:0 15px;color:#5c5c5c;background-color:#f0f0f0;border-left:4px solid #d6d6d6}html body blockquote>:first-child{margin-top:0}html body blockquote>:last-child{margin-bottom:0}html body hr{height:4px;margin:32px 0;background-color:#d6d6d6;border:0 none}html body table{margin:10px 0 15px 0;border-collapse:collapse;border-spacing:0;display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}html body table th{font-weight:700;color:#000}html body table td,html body table th{border:1px solid #d6d6d6;padding:6px 13px}html body dl{padding:0}html body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}html body dl dd{padding:0 16px;margin-bottom:16px}html body code{font-family:Menlo,Monaco,Consolas,'Courier New',monospace;font-size:.85em;color:#000;background-color:#f0f0f0;border-radius:3px;padding:.2em 0}html body code::after,html body code::before{letter-spacing:-.2em;content:'\00a0'}html body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:0 0;border:0}html body .highlight{margin-bottom:16px}html body .highlight pre,html body pre{padding:1em;overflow:auto;line-height:1.45;border:#d6d6d6;border-radius:3px}html body .highlight pre{margin-bottom:0;word-break:normal}html body pre code,html body pre tt{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}html body pre code:after,html body pre code:before,html body pre tt:after,html body pre tt:before{content:normal}html body blockquote,html body dl,html body ol,html body p,html body pre,html body ul{margin-top:0;margin-bottom:16px}html body kbd{color:#000;border:1px solid #d6d6d6;border-bottom:2px solid #c7c7c7;padding:2px 4px;background-color:#f0f0f0;border-radius:3px}@media print{html body{background-color:#fff}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{color:#000;page-break-after:avoid}html body blockquote{color:#5c5c5c}html body pre{page-break-inside:avoid}html body table{display:table}html body img{display:block;max-width:100%;max-height:100%}html body code,html body pre{word-wrap:break-word;white-space:pre}}.markdown-preview{width:100%;height:100%;box-sizing:border-box}.markdown-preview ul{list-style:disc}.markdown-preview ul ul{list-style:circle}.markdown-preview ul ul ul{list-style:square}.markdown-preview ol{list-style:decimal}.markdown-preview ol ol,.markdown-preview ul ol{list-style-type:lower-roman}.markdown-preview ol ol ol,.markdown-preview ol ul ol,.markdown-preview ul ol ol,.markdown-preview ul ul ol{list-style-type:lower-alpha}.markdown-preview .newpage,.markdown-preview .pagebreak{page-break-before:always}.markdown-preview pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}.markdown-preview pre.line-numbers>code{position:relative}.markdown-preview pre.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:1em;font-size:100%;left:0;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-preview pre.line-numbers .line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.markdown-preview pre.line-numbers .line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.markdown-preview .mathjax-exps .MathJax_Display{text-align:center!important}.markdown-preview:not([data-for=preview]) .code-chunk .code-chunk-btn-group{display:none}.markdown-preview:not([data-for=preview]) .code-chunk .status{display:none}.markdown-preview:not([data-for=preview]) .code-chunk .output-div{margin-bottom:16px}.markdown-preview .md-toc{padding:0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link div,.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link p{display:inline}.markdown-preview .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}.scrollbar-style::-webkit-scrollbar{width:8px}.scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.scrollbar-style::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,.66);border:4px solid rgba(150,150,150,.66);background-clip:content-box}html body[for=html-export]:not([data-presentation-mode]){position:relative;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:auto}html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{position:relative;top:0;min-height:100vh}@media screen and (min-width:914px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{padding:2em calc(50% - 457px + 2em)}}@media screen and (max-width:914px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{font-size:14px!important;padding:1em}}@media print{html body[for=html-export]:not([data-presentation-mode]) #sidebar-toc-btn{display:none}}html body[for=html-export]:not([data-presentation-mode]) #sidebar-toc-btn{position:fixed;bottom:8px;left:8px;font-size:28px;cursor:pointer;color:inherit;z-index:99;width:32px;text-align:center;opacity:.4}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn{opacity:1}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc{position:fixed;top:0;left:0;width:300px;height:100%;padding:32px 0 48px 0;font-size:14px;box-shadow:0 0 4px rgba(150,150,150,.33);box-sizing:border-box;overflow:auto;background-color:inherit}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar{width:8px}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,.66);border:4px solid rgba(150,150,150,.66);background-clip:content-box}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a{text-decoration:none}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc{padding:0 16px}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link div,html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link p{display:inline}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{left:300px;width:calc(100% - 300px);padding:2em calc(50% - 457px - 300px / 2);margin:0;box-sizing:border-box}@media screen and (max-width:1274px){html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{width:100%}}html body[for=html-export]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview{left:50%;transform:translateX(-50%)}html body[for=html-export]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc{display:none}
/* Please visit the URL below for more information: */
/*   https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */

      </style>
      <!-- The content below will be included at the end of the <head> element. --><script type="text/javascript">
  document.addEventListener("DOMContentLoaded", function () {
    // your code here
  });
</script></head><body for="html-export">
    
    
      <div class="crossnote markdown-preview  ">
      
<h1 id="薪水支付系统">薪水支付系统 </h1>
<h2 id="1-问题描述">1. 问题描述 </h2>
<p>下面是薪水支付系统的需求描述（与ASD相比进行了简化）：</p>
<p>（1）有些雇员完全以月薪进行支付。在他们的雇员记录中有一个月薪字段。</p>
<p>（2）有些雇员是钟点工。按照他们雇员记录中每小时报酬数和他们的工作时间支付薪水。他们每天会提交工作时间卡，其中记录了日期和工作小时数。如果他们每天工作超过8小时，那么超过的部分会按照正常报酬的1.5倍支付薪水。</p>
<p>（3）对于一些带薪雇员，会根据他们的销售情况，支付一定数量的酬金。他们会提交销售凭条，其中记录了日期和销售金额。在他们的雇员记录中有一个酬金报酬字段。</p>
<p>（4）雇员可以选择支付方式。可以选择把支付支票邮寄到他们指定的邮政地址；也可以把支票保存在出纳人员那里随时支取；或者要求将薪水直接存入他们指定的银行账户。</p>
<p>（5）薪水支付程序于每月发薪日运行一次，为相应的雇员支付薪水。</p>
<h2 id="2-需求分析">2. 需求分析 </h2>
<p>系统用例图</p>
<p class="plantuml"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentstyletype="text/css" data-diagram-type="DESCRIPTION" height="425px" preserveAspectRatio="none" style="width:409px;height:425px;background:#FFFFFF;" version="1.1" viewBox="0 0 409 425" width="409px" zoomAndPan="magnify"><defs></defs><g><!--entity u--><g class="entity" data-entity="u" data-source-line="3" data-uid="ent0002" id="entity_u"><ellipse cx="21.9551" cy="214.87" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"></ellipse><path d="M21.9551,222.87 L21.9551,249.87 M8.9551,230.87 L34.9551,230.87 M21.9551,249.87 L8.9551,264.87 M21.9551,249.87 L34.9551,264.87" fill="none" style="stroke:#181818;stroke-width:0.5;"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="31.9102" x="6" y="279.3651">User</text></g><!--entity uc1--><g class="entity" data-entity="uc1" data-source-line="5" data-uid="ent0003" id="entity_uc1"><ellipse cx="159.4178" cy="84.5236" fill="#F1F1F1" rx="42.5978" ry="14.5236" style="stroke:#181818;stroke-width:0.5;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="55.9998" x="131.4179" y="89.1721">添加雇员</text></g><!--entity uc11--><g class="entity" data-entity="uc11" data-source-line="6" data-uid="ent0004" id="entity_uc11"><ellipse cx="342.4473" cy="20.5236" fill="#F1F1F1" rx="52.4973" ry="14.5236" style="stroke:#181818;stroke-width:0.5;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69.9997" x="307.4474" y="25.1721">添加钟点工</text></g><!--entity uc12--><g class="entity" data-entity="uc12" data-source-line="7" data-uid="ent0005" id="entity_uc12"><ellipse cx="342.4542" cy="84.5228" fill="#F1F1F1" rx="61.5142" ry="14.7028" style="stroke:#181818;stroke-width:0.5;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="83.9996" x="300.4544" y="89.1713">添加月薪雇员</text></g><!--entity uc13--><g class="entity" data-entity="uc13" data-source-line="8" data-uid="ent0006" id="entity_uc13"><ellipse cx="342.4542" cy="148.5228" fill="#F1F1F1" rx="61.5142" ry="14.7028" style="stroke:#181818;stroke-width:0.5;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="83.9996" x="300.4544" y="153.1713">添加销售经理</text></g><!--entity uc2--><g class="entity" data-entity="uc2" data-source-line="9" data-uid="ent0007" id="entity_uc2"><ellipse cx="159.4178" cy="148.5236" fill="#F1F1F1" rx="42.5978" ry="14.5236" style="stroke:#181818;stroke-width:0.5;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="55.9998" x="131.4179" y="153.1721">删除雇员</text></g><!--entity uc3--><g class="entity" data-entity="uc3" data-source-line="10" data-uid="ent0008" id="entity_uc3"><ellipse cx="159.4173" cy="212.5236" fill="#F1F1F1" rx="52.4973" ry="14.5236" style="stroke:#181818;stroke-width:0.5;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69.9997" x="124.4174" y="217.1721">登记时间卡</text></g><!--entity uc4--><g class="entity" data-entity="uc4" data-source-line="11" data-uid="ent0009" id="entity_uc4"><ellipse cx="159.4242" cy="276.5228" fill="#F1F1F1" rx="61.5142" ry="14.7028" style="stroke:#181818;stroke-width:0.5;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="83.9996" x="117.4244" y="281.1713">登记销售凭条</text></g><!--entity uc5--><g class="entity" data-entity="uc5" data-source-line="12" data-uid="ent0010" id="entity_uc5"><ellipse cx="159.4242" cy="340.5228" fill="#F1F1F1" rx="61.5142" ry="14.7028" style="stroke:#181818;stroke-width:0.5;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="83.9996" x="117.4244" y="345.1713">更改雇员明细</text></g><!--entity uc6--><g class="entity" data-entity="uc6" data-source-line="13" data-uid="ent0011" id="entity_uc6"><ellipse cx="159.4184" cy="404.5236" fill="#F1F1F1" rx="32.6984" ry="14.5236" style="stroke:#181818;stroke-width:0.5;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="41.9998" x="138.4184" y="409.1721">发薪日</text></g><!--link u to uc1--><g class="link" data-entity-1="u" data-entity-2="uc1" data-source-line="15" data-uid="lnk12" id="link_u_uc1"><path d="M38.33,206.6 C51.04,178.94 71.31,141.99 97.91,116.52 C107.09,107.72 113.752,103.2679 124.702,98.0579" fill="none" id="u-to-uc1" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="130.12,95.48,120.2744,95.7348,125.605,97.6282,123.7116,102.9588,130.12,95.48" style="stroke:#181818;stroke-width:1;"></polygon></g><!--link u to uc2--><g class="link" data-entity-1="u" data-entity-2="uc2" data-source-line="16" data-uid="lnk13" id="link_u_uc2"><path d="M38.22,229.71 C52.82,216 75.83,195.51 97.91,180.52 C109.02,172.97 116.7473,168.541 127.9073,162.941" fill="none" id="u-to-uc2" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="133.27,160.25,123.432,160.7113,128.8011,162.4925,127.0199,167.8616,133.27,160.25" style="stroke:#181818;stroke-width:1;"></polygon></g><!--link u to uc3--><g class="link" data-entity-1="u" data-entity-2="uc3" data-source-line="17" data-uid="lnk14" id="link_u_uc3"><path d="M38.23,240.91 C57.54,236.35 85.6509,229.71 112.5609,223.35" fill="none" id="u-to-uc3" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="118.4,221.97,108.7213,220.1473,113.5341,223.12,110.5613,227.9328,118.4,221.97" style="stroke:#181818;stroke-width:1;"></polygon></g><!--link u to uc4--><g class="link" data-entity-1="u" data-entity-2="uc4" data-source-line="18" data-uid="lnk15" id="link_u_uc4"><path d="M38.23,248.12 C56.57,252.46 82.2805,258.5315 108.4605,264.7115" fill="none" id="u-to-uc4" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="114.3,266.09,106.4597,260.1293,109.4337,264.9413,104.6218,267.9153,114.3,266.09" style="stroke:#181818;stroke-width:1;"></polygon></g><!--link u to uc5--><g class="link" data-entity-1="u" data-entity-2="uc5" data-source-line="19" data-uid="lnk16" id="link_u_uc5"><path d="M38.22,259.32 C52.82,273.03 75.83,293.52 97.91,308.52 C108.04,315.39 114.4661,319.1919 124.9261,324.5319" fill="none" id="u-to-uc5" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="130.27,327.26,124.0729,319.6052,125.8168,324.9865,120.4354,326.7304,130.27,327.26" style="stroke:#181818;stroke-width:1;"></polygon></g><!--link u to uc6--><g class="link" data-entity-1="u" data-entity-2="uc6" data-source-line="20" data-uid="lnk17" id="link_u_uc6"><path d="M38.33,282.43 C51.04,310.09 71.31,347.05 97.91,372.52 C108.12,382.3 116.4505,387.4332 128.2905,392.7732" fill="none" id="u-to-uc6" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="133.76,395.24,127.2004,387.8935,129.2021,393.1843,123.9113,395.1861,133.76,395.24" style="stroke:#181818;stroke-width:1;"></polygon></g><!--link uc1 to uc11--><g class="link" data-entity-1="uc1" data-entity-2="uc11" data-source-line="22" data-uid="lnk18" id="link_uc1_uc11"><path d="M189.91,74.09 C222.57,62.54 269.4229,45.9794 303.2629,34.0194" fill="none" id="uc1-to-uc11" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="308.92,32.02,299.1015,31.2477,304.2058,33.6861,301.7673,38.7904,308.92,32.02" style="stroke:#181818;stroke-width:1;"></polygon></g><!--link uc1 to uc12--><g class="link" data-entity-1="uc1" data-entity-2="uc12" data-source-line="23" data-uid="lnk19" id="link_uc1_uc12"><path d="M202.41,84.52 C225.6,84.52 248.82,84.52 274.48,84.52" fill="none" id="uc1-to-uc12" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="280.48,84.52,271.48,80.52,275.48,84.52,271.48,88.52,280.48,84.52" style="stroke:#181818;stroke-width:1;"></polygon></g><!--link uc1 to uc13--><g class="link" data-entity-1="uc1" data-entity-2="uc13" data-source-line="24" data-uid="lnk20" id="link_uc1_uc13"><path d="M189.91,94.94 C221.87,106.24 267.1727,122.2612 301.0527,134.2312" fill="none" id="uc1-to-uc13" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="306.71,136.23,299.5566,129.4603,301.9956,134.5644,296.8916,137.0034,306.71,136.23" style="stroke:#181818;stroke-width:1;"></polygon></g><!--SRC=[oqbDAr4eoLSeoapFA558oInAJIx9pC_ZuafCBialKWWjJYrII2nMAENYAYrEJKuiJbLGUhPzzzEk1Izdjp-TE4C9B9biY24xQVxpffrFjo-5AS1GyMnEnujfgr1DCS8mPah3qodhdk_kVpwX3QR86A7eQSU2bpENe9Y1PCJpcRjVhDlmRFgsbzEtFErT25LWZAu0OiVJzhNFviBKc22vO_QMPrDsGgnuDgFl-MwOEqoHdD4_4UYLPzDXdZK31fQ2hguT962WB2CuonZECe6pJE4iaEPaGvXsGsIE4JB76000]--></g></svg></p><h3 id="用例1增加雇员">用例1：增加雇员。 </h3>
<p>使用AddEmp操作(transaction)增加新雇员。该操作包含有分配的雇员号、雇员的名字及其地址。该操作有3种形式：<br>
<code>AddEmp EmpId “name” “address” H hourly-rate</code><br>
<code>AddEmp EmpId “name" “address” S monthly-salary</code><br>
<code>AddEmp EmpId “name” “address” C monthly-salary commission-rate</code><br>
雇员记录是根据对应字段的值来创建的。<br>
异常情况1：描述操作的结构有错误。<br>
如果描述操作的结构不正确，会打印一条错误消息，不进行任何处理。</p>
<h3 id="用例2--删除雇员">用例2  删除雇员。 </h3>
<p>使用DelEmp操作来删除雇员。操作形式：<br>
<code>DelEmp EmpId</code><br>
当执行该操作时，会删除对应的雇员记录。<br>
异常情况1：无效或者未知的EmpId。<br>
如果EmpId字段不具有正确的结构，或者它没有引用到一条有效的雇员记录，会打印一条错误消息，不进行其他处理。</p>
<h3 id="用例3--登记时间卡">用例3  登记时间卡。 </h3>
<p>执行TimeCard操作时，系统会创建一条时间卡记录，并把该记录和对应的雇员记录关联起来。<br>
<code>TimeCard EmpId date hours</code><br>
异常情况1：所选择的雇员不是钟点雇员。<br>
系统会打印一条错误信息，并且不进行进一步的处理。<br>
异常情况2：描述操作的结构中有错误。<br>
系统会打印一条错误信息，不进行进一步的处理。</p>
<h3 id="用例4--登记销售凭条">用例4  登记销售凭条。 </h3>
<p>执行SalesReceipt操作时，系统会创建一条新的销售凭条记录，并把该记录和相应的应支付酬金的雇员关联起来。<br>
<code>SalesReceipt EmpId date amount</code><br>
异常情况1：所选择的雇员不是应该支付酬金的。<br>
系统会打印一条错误消息，不进行进一步的处理。<br>
异常情况2：描述操作的结构中有错误。<br>
系统会打印一条错误信息，不进行进一步的处理。<br>
用例4为带酬金的雇员登记销售凭条则描述了带酬金的雇员和销售凭条之间的关联（如图10.2-4）。</p>
<h3 id="用例5--更改雇员明细">用例5  更改雇员明细。 </h3>
<p>执行ChgEmp操作时，系统会更改对应雇员记录的详细信息之一。该操的几种操作形式如下：<br>
<code>ChgEmp EmpId name “name”</code>	更改雇员名<br>
<code>ChgEmp EmpId address “address”</code>	更改雇员地址<br>
<code>ChgEmp EmpId hourly hourly-rate</code>	更改每小时报酬<br>
<code>ChgEmp EmpId salaried salary</code>	更改薪水<br>
<code>ChgEmp EmpId commissioned salary rate</code>	更改酬金<br>
<code>ChgEmp EmpId hold</code>	持有支票<br>
<code>ChgEmp EmpId direct “bank” “account”</code>	直接存款<br>
<code>ChgEmp EmpId mail “address”</code>	邮寄支票<br>
异常情况：操作错误。<br>
如果描述操作的结构不正确，或者EmpId没有引用到真正的雇员，那么打印一条错误信息，不进行进一步的处理。</p>
<h3 id="用例6--发薪日">用例6  发薪日。 </h3>
<p>执行Payday操作时，系统计算所有雇员的薪金，并根据他们所选择的支付方式对他们进行支付。<br>
<code>Payday</code></p>
<h2 id="系统设计">系统设计 </h2>
<p class="plantuml"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentstyletype="text/css" data-diagram-type="CLASS" height="571px" preserveAspectRatio="none" style="width:1231px;height:571px;background:#FFFFFF;" version="1.1" viewBox="0 0 1231 571" width="1231px" zoomAndPan="magnify"><defs></defs><g><!--class PaymentClassification--><g class="entity" data-entity="PaymentClassification" data-source-line="1" data-uid="ent0002" id="entity_PaymentClassification"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="186.5537" x="303.78" y="112.93"></rect><ellipse cx="318.78" cy="128.93" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M318.8894,124.2738 L317.7331,129.3519 L320.0613,129.3519 L318.8894,124.2738 Z M317.405,122.0394 L320.3894,122.0394 L323.7488,134.43 L321.2956,134.43 L320.53,131.3675 L317.2488,131.3675 L316.4988,134.43 L314.0613,134.43 L317.405,122.0394 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="154.5537" x="332.78" y="133.7767">PaymentClassification</text><line style="stroke:#181818;stroke-width:0.5;" x1="304.78" x2="489.3337" y1="144.93" y2="144.93"></line><line style="stroke:#181818;stroke-width:0.5;" x1="304.78" x2="489.3337" y1="152.93" y2="152.93"></line></g><!--class PaymentMethod--><g class="entity" data-entity="PaymentMethod" data-source-line="2" data-uid="ent0003" id="entity_PaymentMethod"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="146.4268" x="914.84" y="112.93"></rect><ellipse cx="929.84" cy="128.93" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M929.9494,124.2738 L928.7931,129.3519 L931.1213,129.3519 L929.9494,124.2738 Z M928.465,122.0394 L931.4494,122.0394 L934.8088,134.43 L932.3556,134.43 L931.59,131.3675 L928.3088,131.3675 L927.5588,134.43 L925.1213,134.43 L928.465,122.0394 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="114.4268" x="943.84" y="133.7767">PaymentMethod</text><line style="stroke:#181818;stroke-width:0.5;" x1="915.84" x2="1060.2668" y1="144.93" y2="144.93"></line><line style="stroke:#181818;stroke-width:0.5;" x1="915.84" x2="1060.2668" y1="152.93" y2="152.93"></line></g><!--class Employee--><g class="entity" data-entity="Employee" data-source-line="4" data-uid="ent0004" id="entity_Employee"><rect fill="#F1F1F1" height="259.8594" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="344.7188" x="531.69" y="7"></rect><ellipse cx="665.1309" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M668.0997,28.6406 Q667.5215,28.9375 666.8809,29.0781 Q666.2403,29.2344 665.5372,29.2344 Q663.0372,29.2344 661.709,27.5938 Q660.3965,25.9375 660.3965,22.8125 Q660.3965,19.6875 661.709,18.0313 Q663.0372,16.375 665.5372,16.375 Q666.2403,16.375 666.8809,16.5313 Q667.5372,16.6875 668.0997,16.9844 L668.0997,19.7031 Q667.4747,19.125 666.8809,18.8594 Q666.2872,18.5781 665.6622,18.5781 Q664.3184,18.5781 663.6309,19.6563 Q662.9434,20.7188 662.9434,22.8125 Q662.9434,24.9063 663.6309,25.9844 Q664.3184,27.0469 665.6622,27.0469 Q666.2872,27.0469 666.8809,26.7813 Q667.4747,26.5 668.0997,25.9219 L668.0997,28.6406 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69.3369" x="685.6309" y="27.8467">Employee</text><line style="stroke:#181818;stroke-width:0.5;" x1="532.69" x2="875.4088" y1="39" y2="39"></line><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="539.69" y="49.6484"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76.0225" x="551.69" y="55.9951">empId : int</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="539.69" y="65.9453"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.1016" x="551.69" y="72.292">name : String</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="539.69" y="82.2422"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="110.708" x="551.69" y="88.5889">address : String</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="539.69" y="98.5391"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="318.7188" x="551.69" y="104.8857">paymentClassification: PaymentClassification</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="539.69" y="114.8359"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="238.4512" x="551.69" y="121.1826">paymentMethon: PaymentMethod</text><line style="stroke:#181818;stroke-width:0.5;" x1="532.69" x2="875.4088" y1="128.4844" y2="128.4844"></line><ellipse cx="542.69" cy="142.1328" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="228.3271" x="551.69" y="145.4795">Employee(empId,name,address)</text><ellipse cx="542.69" cy="158.4297" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="78.2988" x="551.69" y="161.7764">getEmpId()</text><ellipse cx="542.69" cy="174.7266" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="75.2158" x="551.69" y="178.0732">getName()</text><ellipse cx="542.69" cy="191.0234" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="90.2207" x="551.69" y="194.3701">getAddress()</text><ellipse cx="542.69" cy="207.3203" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="188.4668" x="551.69" y="210.667">getPaymentClassification()</text><ellipse cx="542.69" cy="223.6172" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="186.874" x="551.69" y="226.9639">setPaymentClassification()</text><ellipse cx="542.69" cy="239.9141" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="148.3398" x="551.69" y="243.2607">getPaymentMethod()</text><ellipse cx="542.69" cy="256.2109" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="146.7471" x="551.69" y="259.5576">setPaymentMethod()</text></g><!--class HourlyClassification--><g class="entity" data-entity="HourlyClassification" data-source-line="24" data-uid="ent0007" id="entity_HourlyClassification"><rect fill="#F1F1F1" height="96.8906" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="252.1055" x="7" y="326.86"></rect><ellipse cx="59.5376" cy="342.86" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M62.5063,348.5006 Q61.9282,348.7975 61.2876,348.9381 Q60.647,349.0944 59.9438,349.0944 Q57.4438,349.0944 56.1157,347.4538 Q54.8032,345.7975 54.8032,342.6725 Q54.8032,339.5475 56.1157,337.8913 Q57.4438,336.235 59.9438,336.235 Q60.647,336.235 61.2876,336.3913 Q61.9438,336.5475 62.5063,336.8444 L62.5063,339.5631 Q61.8813,338.985 61.2876,338.7194 Q60.6938,338.4381 60.0688,338.4381 Q58.7251,338.4381 58.0376,339.5163 Q57.3501,340.5788 57.3501,342.6725 Q57.3501,344.7663 58.0376,345.8444 Q58.7251,346.9069 60.0688,346.9069 Q60.6938,346.9069 61.2876,346.6413 Q61.8813,346.36 62.5063,345.7819 L62.5063,348.5006 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="138.5303" x="80.0376" y="347.7067">HourlyClassification</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="258.1055" y1="358.86" y2="358.86"></line><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="15" y="369.5084"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="133.5332" x="27" y="375.8551">hourlyRate: double</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="258.1055" y1="383.1569" y2="383.1569"></line><ellipse cx="18" cy="396.8053" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="226.1055" x="27" y="400.152">HourlyClassification(hourlyRate)</text><ellipse cx="18" cy="413.1022" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"></ellipse><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="112.2188" x="27" y="416.4489">getHourlyRate()</text></g><!--class SalariedClassification--><g class="entity" data-entity="SalariedClassification" data-source-line="29" data-uid="ent0009" id="entity_SalariedClassification"><rect fill="#F1F1F1" height="64.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="181.7139" x="294.2" y="343.15"></rect><ellipse cx="309.2" cy="359.15" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M312.1688,364.7906 Q311.5906,365.0875 310.95,365.2281 Q310.3094,365.3844 309.6063,365.3844 Q307.1063,365.3844 305.7781,363.7438 Q304.4656,362.0875 304.4656,358.9625 Q304.4656,355.8375 305.7781,354.1813 Q307.1063,352.525 309.6063,352.525 Q310.3094,352.525 310.95,352.6813 Q311.6063,352.8375 312.1688,353.1344 L312.1688,355.8531 Q311.5438,355.275 310.95,355.0094 Q310.3563,354.7281 309.7313,354.7281 Q308.3875,354.7281 307.7,355.8063 Q307.0125,356.8688 307.0125,358.9625 Q307.0125,361.0563 307.7,362.1344 Q308.3875,363.1969 309.7313,363.1969 Q310.3563,363.1969 310.95,362.9313 Q311.5438,362.65 312.1688,362.0719 L312.1688,364.7906 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="149.7139" x="323.2" y="363.9967">SalariedClassification</text><line style="stroke:#181818;stroke-width:0.5;" x1="295.2" x2="474.9139" y1="375.15" y2="375.15"></line><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="302.2" y="385.7984"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="99.2646" x="314.2" y="392.1451">salary: double</text><line style="stroke:#181818;stroke-width:0.5;" x1="295.2" x2="474.9139" y1="399.4469" y2="399.4469"></line></g><!--class CommissionedClassification--><g class="entity" data-entity="CommissionedClassification" data-source-line="32" data-uid="ent0011" id="entity_CommissionedClassification"><rect fill="#F1F1F1" height="80.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="227.5557" x="511.27" y="335"></rect><ellipse cx="526.27" cy="351" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M529.2388,356.6406 Q528.6606,356.9375 528.02,357.0781 Q527.3794,357.2344 526.6763,357.2344 Q524.1763,357.2344 522.8481,355.5938 Q521.5356,353.9375 521.5356,350.8125 Q521.5356,347.6875 522.8481,346.0313 Q524.1763,344.375 526.6763,344.375 Q527.3794,344.375 528.02,344.5313 Q528.6763,344.6875 529.2388,344.9844 L529.2388,347.7031 Q528.6138,347.125 528.02,346.8594 Q527.4263,346.5781 526.8013,346.5781 Q525.4575,346.5781 524.77,347.6563 Q524.0825,348.7188 524.0825,350.8125 Q524.0825,352.9063 524.77,353.9844 Q525.4575,355.0469 526.8013,355.0469 Q527.4263,355.0469 528.02,354.7813 Q528.6138,354.5 529.2388,353.9219 L529.2388,356.6406 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="195.5557" x="540.27" y="355.8467">CommissionedClassification</text><line style="stroke:#181818;stroke-width:0.5;" x1="512.27" x2="737.8257" y1="367" y2="367"></line><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="519.27" y="377.6484"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="99.2646" x="531.27" y="383.9951">salary: double</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="519.27" y="393.9453"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="172.6348" x="531.27" y="400.292">commissionRate: double</text><line style="stroke:#181818;stroke-width:0.5;" x1="512.27" x2="737.8257" y1="407.5938" y2="407.5938"></line></g><!--class TimeCard--><g class="entity" data-entity="TimeCard" data-source-line="37" data-uid="ent0013" id="entity_TimeCard"><rect fill="#F1F1F1" height="80.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="122.2432" x="71.93" y="483.75"></rect><ellipse cx="97.0792" cy="499.75" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M100.0479,505.3906 Q99.4698,505.6875 98.8292,505.8281 Q98.1885,505.9844 97.4854,505.9844 Q94.9854,505.9844 93.6573,504.3438 Q92.3448,502.6875 92.3448,499.5625 Q92.3448,496.4375 93.6573,494.7813 Q94.9854,493.125 97.4854,493.125 Q98.1885,493.125 98.8292,493.2813 Q99.4854,493.4375 100.0479,493.7344 L100.0479,496.4531 Q99.4229,495.875 98.8292,495.6094 Q98.2354,495.3281 97.6104,495.3281 Q96.2667,495.3281 95.5792,496.4063 Q94.8917,497.4688 94.8917,499.5625 Q94.8917,501.6563 95.5792,502.7344 Q96.2667,503.7969 97.6104,503.7969 Q98.2354,503.7969 98.8292,503.5313 Q99.4229,503.25 100.0479,502.6719 L100.0479,505.3906 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="67.6895" x="113.3345" y="504.5967">TimeCard</text><line style="stroke:#181818;stroke-width:0.5;" x1="72.93" x2="193.1732" y1="515.75" y2="515.75"></line><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="79.93" y="526.3984"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="82.5166" x="91.93" y="532.7451">date: String</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="79.93" y="542.6953"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="96.2432" x="91.93" y="549.042">hours: double</text><line style="stroke:#181818;stroke-width:0.5;" x1="72.93" x2="193.1732" y1="556.3438" y2="556.3438"></line></g><!--class SalesRecipt--><g class="entity" data-entity="SalesRecipt" data-source-line="44" data-uid="ent0015" id="entity_SalesRecipt"><rect fill="#F1F1F1" height="80.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="136.8994" x="556.6" y="483.75"></rect><ellipse cx="582.0999" cy="499.75" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M585.0686,505.3906 Q584.4905,505.6875 583.8499,505.8281 Q583.2092,505.9844 582.5061,505.9844 Q580.0061,505.9844 578.678,504.3438 Q577.3655,502.6875 577.3655,499.5625 Q577.3655,496.4375 578.678,494.7813 Q580.0061,493.125 582.5061,493.125 Q583.2092,493.125 583.8499,493.2813 Q584.5061,493.4375 585.0686,493.7344 L585.0686,496.4531 Q584.4436,495.875 583.8499,495.6094 Q583.2561,495.3281 582.6311,495.3281 Q581.2874,495.3281 580.5999,496.4063 Q579.9124,497.4688 579.9124,499.5625 Q579.9124,501.6563 580.5999,502.7344 Q581.2874,503.7969 582.6311,503.7969 Q583.2561,503.7969 583.8499,503.5313 Q584.4436,503.25 585.0686,502.6719 L585.0686,505.3906 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="81.5664" x="598.4332" y="504.5967">SalesRecipt</text><line style="stroke:#181818;stroke-width:0.5;" x1="557.6" x2="692.4994" y1="515.75" y2="515.75"></line><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="564.6" y="526.3984"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="82.5166" x="576.6" y="532.7451">date: String</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="564.6" y="542.6953"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="110.8994" x="576.6" y="549.042">amount: double</text><line style="stroke:#181818;stroke-width:0.5;" x1="557.6" x2="692.4994" y1="556.3438" y2="556.3438"></line></g><!--class HoldMethod--><g class="entity" data-entity="HoldMethod" data-source-line="51" data-uid="ent0017" id="entity_HoldMethod"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="116.376" x="773.86" y="351.3"></rect><ellipse cx="788.86" cy="367.3" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M791.8288,372.9406 Q791.2506,373.2375 790.61,373.3781 Q789.9694,373.5344 789.2663,373.5344 Q786.7663,373.5344 785.4381,371.8938 Q784.1256,370.2375 784.1256,367.1125 Q784.1256,363.9875 785.4381,362.3313 Q786.7663,360.675 789.2663,360.675 Q789.9694,360.675 790.61,360.8313 Q791.2663,360.9875 791.8288,361.2844 L791.8288,364.0031 Q791.2038,363.425 790.61,363.1594 Q790.0163,362.8781 789.3913,362.8781 Q788.0475,362.8781 787.36,363.9563 Q786.6725,365.0188 786.6725,367.1125 Q786.6725,369.2063 787.36,370.2844 Q788.0475,371.3469 789.3913,371.3469 Q790.0163,371.3469 790.61,371.0813 Q791.2038,370.8 791.8288,370.2219 L791.8288,372.9406 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.376" x="802.86" y="372.1467">HoldMethod</text><line style="stroke:#181818;stroke-width:0.5;" x1="774.86" x2="889.236" y1="383.3" y2="383.3"></line><line style="stroke:#181818;stroke-width:0.5;" x1="774.86" x2="889.236" y1="391.3" y2="391.3"></line></g><!--class MailMethod--><g class="entity" data-entity="MailMethod" data-source-line="52" data-uid="ent0019" id="entity_MailMethod"><rect fill="#F1F1F1" height="64.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="132.2578" x="924.92" y="343.15"></rect><ellipse cx="948.6111" cy="359.15" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M951.5798,364.7906 Q951.0017,365.0875 950.3611,365.2281 Q949.7204,365.3844 949.0173,365.3844 Q946.5173,365.3844 945.1892,363.7438 Q943.8767,362.0875 943.8767,358.9625 Q943.8767,355.8375 945.1892,354.1813 Q946.5173,352.525 949.0173,352.525 Q949.7204,352.525 950.3611,352.6813 Q951.0173,352.8375 951.5798,353.1344 L951.5798,355.8531 Q950.9548,355.275 950.3611,355.0094 Q949.7673,354.7281 949.1423,354.7281 Q947.7986,354.7281 947.1111,355.8063 Q946.4236,356.8688 946.4236,358.9625 Q946.4236,361.0563 947.1111,362.1344 Q947.7986,363.1969 949.1423,363.1969 Q949.7673,363.1969 950.3611,362.9313 Q950.9548,362.65 951.5798,362.0719 L951.5798,364.7906 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="80.9443" x="964.5424" y="363.9967">MailMethod</text><line style="stroke:#181818;stroke-width:0.5;" x1="925.92" x2="1056.1778" y1="375.15" y2="375.15"></line><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="932.92" y="385.7984"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="106.2578" x="944.92" y="392.1451">address: String</text><line style="stroke:#181818;stroke-width:0.5;" x1="925.92" x2="1056.1778" y1="399.4469" y2="399.4469"></line></g><!--class DirectMethod--><g class="entity" data-entity="DirectMethod" data-source-line="55" data-uid="ent0021" id="entity_DirectMethod"><rect fill="#F1F1F1" height="80.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="132.7227" x="1091.69" y="335"></rect><ellipse cx="1109.3856" cy="351" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"></ellipse><path d="M1112.3544,356.6406 Q1111.7762,356.9375 1111.1356,357.0781 Q1110.495,357.2344 1109.7919,357.2344 Q1107.2919,357.2344 1105.9637,355.5938 Q1104.6512,353.9375 1104.6512,350.8125 Q1104.6512,347.6875 1105.9637,346.0313 Q1107.2919,344.375 1109.7919,344.375 Q1110.495,344.375 1111.1356,344.5313 Q1111.7919,344.6875 1112.3544,344.9844 L1112.3544,347.7031 Q1111.7294,347.125 1111.1356,346.8594 Q1110.5419,346.5781 1109.9169,346.5781 Q1108.5731,346.5781 1107.8856,347.6563 Q1107.1981,348.7188 1107.1981,350.8125 Q1107.1981,352.9063 1107.8856,353.9844 Q1108.5731,355.0469 1109.9169,355.0469 Q1110.5419,355.0469 1111.1356,354.7813 Q1111.7294,354.5 1112.3544,353.9219 L1112.3544,356.6406 Z " fill="#000000"></path><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="94.7324" x="1123.9846" y="355.8467">DirectMethod</text><line style="stroke:#181818;stroke-width:0.5;" x1="1092.69" x2="1223.4127" y1="367" y2="367"></line><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="1099.69" y="377.6484"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85.3945" x="1111.69" y="383.9951">bank: String</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="1099.69" y="393.9453"></rect><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="106.7227" x="1111.69" y="400.292">account: String</text><line style="stroke:#181818;stroke-width:0.5;" x1="1092.69" x2="1223.4127" y1="407.5938" y2="407.5938"></line></g><!--link PaymentClassification to Employee--><g class="link" data-entity-1="PaymentClassification" data-entity-2="Employee" data-source-line="21" data-uid="lnk5" id="link_PaymentClassification_Employee"><path codeline="21" d="M490.59,136.93 C504.21,136.93 505.83,136.93 519.45,136.93" fill="none" id="PaymentClassification-to-Employee" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="531.45,136.93,525.45,132.93,519.45,136.93,525.45,140.93,531.45,136.93" style="stroke:#181818;stroke-width:1;"></polygon></g><!--reverse link Employee to PaymentMethod--><g class="link" data-entity-1="Employee" data-entity-2="PaymentMethod" data-source-line="22" data-uid="lnk6" id="link_Employee_PaymentMethod"><path codeline="22" d="M888.84,136.93 C901.44,136.93 902.04,136.93 914.63,136.93" fill="none" id="Employee-backto-PaymentMethod" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="876.84,136.93,882.84,140.93,888.84,136.93,882.84,132.93,876.84,136.93" style="stroke:#181818;stroke-width:1;"></polygon></g><!--reverse link PaymentClassification to HourlyClassification--><g class="link" data-entity-1="PaymentClassification" data-entity-2="HourlyClassification" data-source-line="25" data-uid="lnk8" id="link_PaymentClassification_HourlyClassification"><path d="M357.8498,173.0269 C315.2298,211.1869 242.65,276.17 186.49,326.46" fill="none" id="PaymentClassification-backto-HourlyClassification" style="stroke:#181818;stroke-width:1;"></path><polygon fill="none" points="371.26,161.02,353.8475,168.5568,361.8521,177.497,371.26,161.02" style="stroke:#181818;stroke-width:1;"></polygon></g><!--reverse link PaymentClassification to SalariedClassification--><g class="link" data-entity-1="PaymentClassification" data-entity-2="SalariedClassification" data-source-line="30" data-uid="lnk10" id="link_PaymentClassification_SalariedClassification"><path d="M394.9691,178.9969 C392.8091,221.6269 389.09,294.75 386.65,342.93" fill="none" id="PaymentClassification-backto-SalariedClassification" style="stroke:#181818;stroke-width:1;"></path><polygon fill="none" points="395.88,161.02,388.9768,178.6933,400.9614,179.3006,395.88,161.02" style="stroke:#181818;stroke-width:1;"></polygon></g><!--reverse link PaymentClassification to CommissionedClassification--><g class="link" data-entity-1="PaymentClassification" data-entity-2="CommissionedClassification" data-source-line="33" data-uid="lnk12" id="link_PaymentClassification_CommissionedClassification"><path d="M429.2175,174.6762 C452.2075,200.8162 479.15,230.81 514.05,266.86 C536.25,289.78 561.8,314.61 582.78,334.62" fill="none" id="PaymentClassification-backto-CommissionedClassification" style="stroke:#181818;stroke-width:1;"></path><polygon fill="none" points="417.33,161.16,424.712,178.6387,433.7229,170.7137,417.33,161.16" style="stroke:#181818;stroke-width:1;"></polygon></g><!--reverse link HourlyClassification to TimeCard--><g class="link" data-entity-1="HourlyClassification" data-entity-2="TimeCard" data-source-line="42" data-uid="lnk14" id="link_HourlyClassification_TimeCard"><path codeline="42" d="M133.05,435.94 C133.05,455.19 133.05,465.14 133.05,483.49" fill="none" id="HourlyClassification-backto-TimeCard" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="133.05,423.94,129.05,429.94,133.05,435.94,137.05,429.94,133.05,423.94" style="stroke:#181818;stroke-width:1;"></polygon></g><!--reverse link CommissionedClassification to SalesRecipt--><g class="link" data-entity-1="CommissionedClassification" data-entity-2="SalesRecipt" data-source-line="49" data-uid="lnk16" id="link_CommissionedClassification_SalesRecipt"><path codeline="49" d="M625.05,428.01 C625.05,448.89 625.05,462.42 625.05,483.3" fill="none" id="CommissionedClassification-backto-SalesRecipt" style="stroke:#181818;stroke-width:1;"></path><polygon fill="#181818" points="625.05,416.01,621.05,422.01,625.05,428.01,629.05,422.01,625.05,416.01" style="stroke:#181818;stroke-width:1;"></polygon></g><!--reverse link PaymentMethod to HoldMethod--><g class="link" data-entity-1="PaymentMethod" data-entity-2="HoldMethod" data-source-line="51" data-uid="lnk18" id="link_PaymentMethod_HoldMethod"><path d="M962.8961,176.0438 C933.0761,221.2338 877.23,305.85 847.36,351.11" fill="none" id="PaymentMethod-backto-HoldMethod" style="stroke:#181818;stroke-width:1;"></path><polygon fill="none" points="972.81,161.02,957.8882,172.7392,967.904,179.3484,972.81,161.02" style="stroke:#181818;stroke-width:1;"></polygon></g><!--reverse link PaymentMethod to MailMethod--><g class="link" data-entity-1="PaymentMethod" data-entity-2="MailMethod" data-source-line="53" data-uid="lnk20" id="link_PaymentMethod_MailMethod"><path d="M988.578,179.0186 C989.118,221.6486 990.04,294.75 990.65,342.93" fill="none" id="PaymentMethod-backto-MailMethod" style="stroke:#181818;stroke-width:1;"></path><polygon fill="none" points="988.35,161.02,982.5785,179.0946,994.5775,178.9426,988.35,161.02" style="stroke:#181818;stroke-width:1;"></polygon></g><!--reverse link PaymentMethod to DirectMethod--><g class="link" data-entity-1="PaymentMethod" data-entity-2="DirectMethod" data-source-line="56" data-uid="lnk22" id="link_PaymentMethod_DirectMethod"><path d="M1015.1696,175.6333 C1044.1596,215.9433 1093.8,284.97 1129.56,334.69" fill="none" id="PaymentMethod-backto-DirectMethod" style="stroke:#181818;stroke-width:1;"></path><polygon fill="none" points="1004.66,161.02,1010.2984,179.1365,1020.0407,172.1301,1004.66,161.02" style="stroke:#181818;stroke-width:1;"></polygon></g><!--SRC=[hLDBJiCm5Dpx55wMGYxG7IgLog88jLpWrNwq5lv4jYiHeTwTE7QSD78BGcJdySnutYUmTzu2yvH9S8w-GgDG-sKuY7V1m0kZ2HH96_H7mmc9u4hLqZI8z8lGzgieglgPqmKLsYT4Wy8Ms7ahz25XmBd5LZw1wrAEnPLu5v8krK3jGmREVGuvwy8zX40FAS5TeXpGhyBbR0IyjBpn-J5Anb0nMIQudmY3GmnSKEQBCo55CrhDSu4aZsDUbUUrDYShcua3VdhK_CeQvCaUE-aMF2ueDwUzn1Isv3aRsADYrndi2egHTY312kH_2kM2kCc1Ui-bKKgqVAF_npU2BBjUTE7SD_TDA5o2vTc5TxIB5GzzSMDfSIBpgifkPEWJkYqoKVjR3u0o9-t7BzneHdXdv3jiYUHnRwRjIjiKQHiGyXOjnqm_MqxQZ-b9M6J-LnPxq1_JIXcBfVQktm00]--></g></svg></p>
      </div>
      
      
    
    
    
    
    
    
  
    </body></html>